package com.datang.pet.common.template;/*
 * @auther 顶风少年
 * @mail dfsn19970313@foxmail.com
 * @date 2019-05-12 16:40
 * @notify
 * @version 1.0
 */


import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
import org.springframework.util.ResourceUtils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class GeneratorSqlmap {
    public static void main(String[] args) throws FileNotFoundException {
       List<String> warnings = new ArrayList<String>();
       boolean overwrite = true;

       String genCfg = "C:\\com.datang.pet\\com.datang.pet.common\\src\\main\\resources\\generator.xml";
        File configFile = ResourceUtils.getFile(genCfg);
       ConfigurationParser cp = new ConfigurationParser(warnings);
       Configuration config = null;
       try {
           config = cp.parseConfiguration(configFile);
       } catch (Exception e) {
           e.printStackTrace();
       }
       DefaultShellCallback callback = new DefaultShellCallback(overwrite);
       MyBatisGenerator myBatisGenerator = null;
       try {
           myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
       } catch (InvalidConfigurationException e) {
           e.printStackTrace();
       }
       try {
           myBatisGenerator.generate(null);
       } catch (SQLException e) {
           e.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       } catch (InterruptedException e) {
           e.printStackTrace();
       }
    }
}
